\section{Desarrollo}

Al inicio de este trabajo se implemento de manera agil el metodo de compresion con el software Matlab. La ventaja del mismo fue que nos permitio abstraernos lo suficiente como para obtener un resultado de compresion en corto tiempo. 

Con Matlab pudimos ver como deberian darnos los resultados finales, tanto para los graficos del error cuadratico medio vs k, como asi tambien las imagenes comprimidas. El codigo se adjunta en el apendice.

Pasando mas lo tecnico, para la tarea de la compresi\'on de im\'agenes usamos el formato raw (o pgm) en escala de grisis ya que el formato no hace ningun tipo de post modificaci\'on al archivo manipularlo es sencillo, porque el archivo es s\'olo una gran matriz.

Una vez que obtenemos en nuestra matriz (de ahora en adelante matImg) los datos de la im\'agen intentaresmos encontrar su descomposici\'on en valores singulares. Lo primero que hacemos es generar dos matrices cuadradas y sim\'etricas multiplicando $matImg*matImg^{t}$ y $matImg^{t}*matImg$ y buscar los autovectores de estas dos matrices, para lograr esto primero buscamos sus autovalores utilizando el \textbf{algoritmo QR} pero no sobre las matrices anteriormente mencionadas, sino sobre matrices tridiagonales que tienen los mismos autovalores.

Para obtener la matriz tridiagonal sim\'etrica que tiene los mismos autovalores usamos el m\'etodo \textbf{trasformaci\'on HouseHolder}. El m\'etodo es estable con respecto a las operaciones que realiza con lo cual los errores cometidos no crecen en cada iteraci\'on.

Luego para determinar los autovalores de una matriz, la t\'ecnica utilizada es el \textbf{algoritmo QR}. La entrada de este algoritmo es una matriz tridiagonal sim\'etrica.

Sea A la matriz tridiagonal sim\'etrica. El m\'etodo QR crea una secuencia de matrices $A^{(1)}$, $A^{(2)}$, $A^{(3)}$... de la siguiente manera:
 
\begin{enumerate}
	\item A=$A^{(1)}$ tiene factorizaci\'on $A^{(1)}$=$Q^{(1)}$$R^{(1)}$ donde $Q^{(1)}$ es ortogonal y $R^{(1)}$ es triangular superior.
	\item $A^{(2)}$ se define como $A^{(2)}$=$R^{(1)}$$Q^{(1)}$
\end{enumerate}
En general $A^{(i)}$ tiene factorizaci\'on $A^{(i)}$=$Q^{(i)}$$R^{(i)}$ y $A^{(i+1)}$ se define como $A^{(i+1)}$= $R^{(i)}$$Q^{(i)}$.
La matriz $A^{(i+1)}$ es tridiagonal sim\'etrica y con los mismos autovalores que $A^{(i)}$. Continuando con la inducci\'on $A^{(i+1)}$ tiene los mismos autovalores que A, y tiende a ser una matriz diagonal con los autovalores en la diagonal.

Una vez que se determinaron los autovalores, para cada autovalor $\delta^i$ se resuelve el sistema $(A-\delta^i I)v=0$ y asi se obtiene el autovector que le corresponde al autovalor.

	Para la implementaci\'on se utiliz\'o la estructura \textbf{Matriz} la cual almacena los valores de la matriz en el tipo \textbf{Double}. 

\newpage